package com.rain.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;

public class PropertiesUtils {
    // 创建一个Properties对象读取.properties文件
    private static Properties properties = new Properties();
    // 创建线程安全的map保存键值对
    private static Map<String,String> PROPER_MAP = new ConcurrentHashMap<>();


    // 类加载时执行一次
    static {
        // 声明InputStream读取变量
        InputStream is = null;
        try{
            // 通过类加载器获取application.properties文件的输入流  文件需要位于src/main/resources
            is = PropertiesUtils.class.getClassLoader().getResourceAsStream("application.properties");
            // 加载到properties对象里
            properties.load(is);
            // 获取所有配置项的key集合的迭代器
            Iterator<Object> iterator = properties.keySet().iterator();
            while (iterator.hasNext()){
                String key = (String)iterator.next();
                PROPER_MAP.put(key,properties.getProperty(key));
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(is!=null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    public static String getString(String key){
        return PROPER_MAP.get(key);
    }

//    public static void main(String[] args) {
//        System.out.println("wer");
//    }
}
